;
!function() {
	var $ = layui.jquery,
		layer = layui.layer,
		form = layui.form,
		laydate = layui.laydate,
		upload = layui.upload;

	// 实例化富文本编辑器
	var um = UM.getEditor('contentEditor');

	// 渲染日期输入框
	laydate.render({
		elem : '#deadTime',
		type: 'datetime'
	});

	// 定义附件访问地址变量
	var annexUrl_str = "";
	// 定义上传成功次数变量
	var count = 0;
	// 附件上传
	var fileListView = $('#fileList'),
		files,
		uploadListIns = upload.render({
			elem : '#annex-upload',
			url : '/bizjobs/annexUpload',
			accept : 'file',
			size : 10240,
			multiple : true,
			auto : false,
			bindAction : '#fileListAction',
			choose : function(obj) {
				files = obj.pushFile(); //将每次选择的文件追加到文件队列
				//读取本地文件
				obj.preview(function(index, file, result) {
					var tr = $([ '<tr id="upload-' + index + '">'
						, '<td>' + file.name + '</td>'
						, '<td>' + (file.size / 1014).toFixed(1) + 'kb</td>'
						, '<td>等待上传</td>'
						, '<td>'
						, '<button class="layui-btn layui-btn-mini file-reload layui-hide">重传</button>'
						, '<button class="layui-btn layui-btn-mini layui-btn-danger file-delete">删除</button>'
						, '</td>'
						, '</tr>' ].join(''));

					//单个重传
					tr.find('.file-reload').on('click', function() {
						obj.upload(index, file);
					});

					//删除
					tr.find('.file-delete').on('click', function() {
						delete files[index]; //删除对应的文件
						tr.remove();
					});

					fileListView.append(tr);
				});
			},
			before : function(obj) {
				layer.load();
			},
			done : function(res, index, upload) {
				if (res.status == 0) { //上传成功
					layer.closeAll('loading');
					var tr = fileListView.find('tr#upload-' + index),
						tds = tr.children();
					tds.eq(2).html('<span style="color: #5FB878;">上传成功</span>');
					tds.eq(3).html(''); //清空操作
					delete files[index]; //删除文件队列已经上传成功的文件
					// 保存附件的地址
					annexUrl_str += res.data + "#";
					count++;
					return;
				}
				this.error(index, upload);
			},
			error : function(index, upload) {
				layer.closeAll('loading');
				var tr = fileListView.find('tr#upload-' + index),
					tds = tr.children();
				tds.eq(2).html('<span style="color: #FF5722;">上传失败</span>');
				tds.eq(3).find('.file-reload').removeClass('layui-hide'); //显示重传
			}
		});

	// 重置富文本内容
	$("#resetContent").click(function() {
		um.setContent("");
	});

	// 发布任务点击事件
	form.on("submit(releaseBizJobs)", function() {
		// 判断截止日期需大于今天
		var dateTime = new Date($("#deadTime").val().replace(/-/g, "/"));
		if (new Date() > Date.parse(dateTime)) {
			layer.msg("任务截止时间需大于当前时间", {
				icon : 5
			});
			return false;
		}
			
		// 判断任务类型是否有选择过
		if ($("#jobType").val() == "-1") {
			layer.msg("请选择任务类型", {
				icon : 5
			});
			return false;
		}
		// 判断金额是否合法
		var price = $("#price").val();
		var index = price.indexOf(".");
		if(!/(^[1-9](\d+)?(\.\d{1,2})?$)|(^(0){1}$)|(^\d\.\d{1,2}?$)/.test(price)){
			layer.msg("请输入合法的金额，最多保留两位小数", {
				icon : 5
			});
			return false;
		}else if(price.substring(0,index.length) > 100000){
			layer.msg("报酬金额不能超过十万", {
				icon : 5
			});
			return false;
		}
		// 判断富文本的内容是否有20字以上
		if (um.getContent().trim().length < 20) {
			layer.msg("任务内容至少20字以上", {
				icon : 5
			});
			return false;
		}
		// 判断是否有需要上传的附件
		if($("#fileList").find("tr").length > 0 && $("#fileList").find("tr").length <= 5){
			count = 0;
			// 开始上传
			$("#fileListAction").click();
			var interval = setInterval(function() {
				if(count == $("#fileList").find("tr").length){
					// 去除最后一个符号
					annexUrl_str = annexUrl_str.substring(0,annexUrl_str.length-1);
					// 清除定时器
					clearInterval(interval);
					releaseTask();
				}
			}, 500);
		}else if($("#fileList").find("tr").length > 5){
			layer.msg("最多只能上传5个附件", {
				icon : 5
			});
			return false;
		}else{
			releaseTask();
		}
		
		return false;
	});
	
	// 执行发布任务
	function releaseTask() {
		$.ajax({
			url: "/bizjobs/releaseBizJobs",
			type: "post",
			data: {
				"title": $("#title").val(),
				"content": um.getContent(),
				"deadTime": $("#deadTime").val(),
				"remark": $("#remark").val(),
				"price": $("#price").val(),
				"noticeContent": $("#noticeContent").val(),
				"resultRequire": $("#resultRequire").val(),
				"attachmentUrls": annexUrl_str
			},
			success: function(result){
				layer.msg(result.msg);
				if(result.status == 0){
					setTimeout("location='/bizJobsList'", 2000);
				}
			}
		});
	}
}();